/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Database;
import Helpers.EasyFile;
import java.sql.*;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;
public class OracleAccess {
private Connection con = null;
private CallableStatement csmt;
private Statement smt;
public OracleAccess(String db){
String driver = null;
String host = null;
String port = null;
String user = null;
String pass = null;
String sid = null;
String url = null;
if(db.equals("CB")){
driver = EasyFile.getConfig("Configs", "oracle_driver");
host = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_host_cb"));
port = EasyFile.getConfig("Configs", "oracle_port");
user = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_user_cb"));
pass = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_pass_cb"));
sid = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_sid_cb"));
}else if(db.equals("CC1")){
driver = EasyFile.getConfig("Configs", "oracle_driver");
host = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_host_cc1"));
port = EasyFile.getConfig("Configs", "oracle_port");
user = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_user_cc1"));
pass = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_pass_cc1"));
sid = EasyFile.getConfig("Configs", EasyFile.getConfig("Configs", "oracle_sid_cc1"));
}
url = "jdbc:oracle:thin:@" + host + ":" + port + ":" + sid;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, pass);
con.setAutoCommit(false);
} catch (Exception ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void initCallProc(String namePackage, String nameProcedure, int nbParam){
String request = "{ call " + namePackage + "." + nameProcedure + "(";
for(int i=0; i<nbParam; i++){
request += (i<(nbParam-1) ? "?," : "?)}");
}
try {
csmt = con.prepareCall(request);
} catch (SQLException ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void initCallFunc(String namePackage, String nameProcedure, int nbParam){
String request = "{ ? = call " + namePackage + "." + nameProcedure + "(";
for(int i=0; i<nbParam; i++){
request += (i<(nbParam-1) ? "?," : "?)}");
}
try {
csmt = con.prepareCall(request);
} catch (SQLException ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
public String quotes(String message){
String temp = message;
temp = temp.replace("'", "''");
return temp;
}
private void finish(String type) {
try {
this.smt = this.con.createStatement();
this.smt.executeQuery(type);
this.smt.close();
} catch (Exception ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
private String[] getListCriteres(LinkedList<String> criteres) {
String[] listCriteres = null;
if(criteres.size() > 0){
listCriteres = new String[criteres.size()];
int cpt = 0;
for(String critere : criteres){
listCriteres[cpt] = critere;
cpt++;
}
}
return listCriteres;
}
public boolean doInsertCommande(int id, int quantite, int physique) {
boolean ok = false;
try {
csmt.setInt(1, id);
csmt.setInt(2, quantite);
csmt.setInt(3, physique);
} catch (SQLException ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
try {
csmt.executeUpdate();
finish("commit");
ok = true;
} catch (SQLException ex) {
finish("rollback");
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}finally{
try {
csmt.close();
} catch (SQLException ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
return ok;
}
}